package com.oig.sys.base.entity;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * @author wuxl
 * 海关报关需要用到的
 */
@Setter
@Getter
@ToString
@Entity
@Table(name = "tb_hs_goods")
public class TbHsGoods implements Serializable {

	/**
	 * hscode
	 */
	@Id
	@Column(name = "hs_code", nullable = false, length = 10)
	private String hsCode;

	/**
	 * 海关商品名称
	 */
	@Column(name = "name", length = 128)
	private String name;

	/**
	 * 单位
	 */
	@Column(name = "unit1", length = 12)
	private String unit1;

	/**
	 */
	@Column(name = "unit2", length = 12)
	private String unit2;

	/**
	 * 关税收取方式 0-从价 1-从量
	 * default value: '0'
	 */
	@Column(name = "tariff_type")
	private String tariffType;
	/**
	 * 最惠国关税税率
	 */
	@Column(name = "off_tariff_rate")
	private BigDecimal offTariffRate;
	/**
	 * 进口暂定关税
	 */
	@Column(name = "prov_tax_rate")
	private BigDecimal provTaxRate;
	/**
	 * 普通关税税率
	 */
	@Column(name = "comm_tariff_rate")
	private BigDecimal commTariffRate;

	/**
	 * 增值税税率
	 */
	@Column(name = "vat_rate")
	private BigDecimal vatRate;

	/**
	 * 退税率
	 */
	@Column(name = "rebate_rate")
	private BigDecimal rebateRate;
	/**
	 * 出口暂定税率
	 */
	@Column(name = "export_prov_tax_rate")
	private BigDecimal exportProvTaxRate;
	/**
	 * 出口税率
	 */
	@Column(name = "export_rate")
	private BigDecimal exportRate;
	/**
	 * 消费税税率
	 */
	@Column(name = "cmp_tax_rate")
	private BigDecimal cmpTaxRate;

	/**
	 * 监管条件
	 */
	@Column(name = "monitor", length = 60)
	private String monitor;

	/**
	 * 检疫类别
	 */
	@Column(name = "iq_type")
	private String iqType;

	/**
	 * 备注
	 */
	@Column(name = "remark", length = 128)
	private String remark;

	/**
	 * 状态
	 */
	@Column(name = "status")
	private String status;

	/**
	 * 网站更新时间
	 */
	@Column(name = "gw_update_time")
	private String gwUpdateDate;
	/**
	 * 最后更新时间
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "update_time")
	private Date updateTime;

	@Version
	@Column(name = "version")
	private Integer version;

}
